package com.chrray.position.service.auth;


import com.chrray.position.entity.position.SysRole;
import com.chrray.position.pojo.dto.auth.*;
import com.chrray.position.pojo.dto.util.BaseAllDto;
import com.chrray.position.util.result.PageBean;
import com.chrray.position.util.result.ResponseResult;


import java.util.List;

/**
 * @Author: LM
 * @Description: 角色逻辑
 * @Date: 2021/1/8 10:03
 */
public interface SysJurisdictionService {
    /**
     * 新增角色
     * @param RoleDto
     * @return
     */
    ResponseResult roleInsert(RoleInsertDto RoleDto);

    /**
     * 修改角色
     * @param RoleDto
     * @return
     */
    ResponseResult roleUpdate(RoleUpdateDto RoleDto);
    ResponseResult roleUpdateMenu(RoleDto RoleDto);

    /**
     * 删除角色
     * @param id
     * @return
     */
    ResponseResult roleDelete(Long id);

    /**
     * 查询角色详情
     * @param id
     * @return
     */
    ResponseResult<RoleMenuDto>  roleMenuDetail(Long id);
    ResponseResult<SysRole>  roleDetail(Long id);

    /**
     * 角色列表
     * @param dto
     * @return
     */
    ResponseResult<PageBean<SysRole>> roleFind(RoleListDto dto);



    /**
     * 查询所有菜单和按钮权限
     * @return
     */
    ResponseResult<List<SysMenuTreeDto>>  menuAll();

    /**
     * 全部角色
     * @return
     */
    ResponseResult roleAll(BaseAllDto dto);

    /**
     * 全部角色
     * @return
     */
    ResponseResult roleAllNotDefault(BaseAllDto dto);
    /**
     * 查询用户拥有的菜单和按钮权限
     * @return
     */
    ResponseResult<List<SysMenuTreeDto>>  myMenuOperation(BaseAllDto baseSysDto);

    /**
     * 指定用户拥有的菜单和按钮权限
     * @return
     */



    /**
     * 查询用户拥有的菜单权限
     * @param baseSysDto
     * @return
     */
    ResponseResult<List<SysMenuTreeDto>>   myMenu(BaseAllDto baseSysDto);

    /**
     * 查询用户拥有的按钮权限
     * @param dto
     * @return
     */
    ResponseResult<List<SysOperationDto>>  myOperation(AllUserMenuDto dto);



    ResponseResult upOrDownRole(AllRoleUpRequest sysUser);

    ResponseResult<List<SysMenuTreeDto>> myMenuAndBtn(BaseAllDto baseSysDto);

}
